/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.losalpes.security;

import com.losalpes.client.IClientService;
import com.losalpes.persistence.entity.Cliente;
import com.losalpes.persistence.entity.TipoUsuario;
import com.losalpes.persistence.entity.Usuario;
import javax.ejb.EJB;
import javax.ejb.Stateless;

/**
 * Clase que administra un cliente
 * @author Henry.Quiroga
 */
@Stateless
public class SecurityService implements ISecurityService {

    @EJB
    private IClientService clientService;

    /**
     * Valida un usuario, basado en el usuario y el password
     * @param usuario
     * @param pwd
     * @param bCarrito El retorno de login cambia dependiendo de donde
     * se llama esta variable
     * @return un string de navegacion
     */
    public String login(String username, String pwd, Boolean bCarrito) {
        Usuario usuario;
        if (username.equals("ADMINISTRADOR")) {
            usuario = new Usuario();
            usuario.setUsuario(username);
            usuario.setPwd(pwd);
            usuario.setTipoUsuario(TipoUsuario.ADMINISTRADOR);

        } else {
            Cliente cliente = clientService.getCliente(username);

            if (cliente != null) {
                usuario = new Usuario();
                usuario.setUsuario(username);
                usuario.setPwd(pwd);
                usuario.setTipoUsuario(TipoUsuario.CLIENTE);

            } else {
                usuario = null;
            }
        }

        if (usuario != null) {
            if (usuario.getTipoUsuario() == TipoUsuario.ADMINISTRADOR) {
                return "administrador";
            } else {
                Cliente cliente = clientService.getCliente(username);

                if (cliente != null) {

                    if (bCarrito) {
                        return "confirmarOrden";
                    } else {
                        return "cliente";
                    }
                } else {
                    return "login";
                }
            }
        } else {
            return "login";
        }
    }
}
